library(lmtest)
library(sandwich)


load("data/sw_2.Rdata")

sw2<-sw[sw$officer.uniform==T,]


sw2<-sw2[order(sw2$dayno),]
stopifnot(identical(sw2$dayno, sw2$dayno[order(sw2$dayno)]))



##TABLE 1
## Estimate discontinuity at moment of intervention using all weapon stops, 2008-2015

se1<-rep(NA, 8)
names.models<-c("diff.means","diff.means+controls","linear","linear+controls","squared","squared+controls","cubic","cubic+controls")
names(se1)<-names.models

##diff in means
m1<-lm(weapon.hit~period, data=sw2)
se1[1]<-summary(m1)$coefficients["periodpost-memo","Std. Error"]

m1a<-lm(weapon.hit~period+factor(year)+factor(month)+factor(weekday)+lag.hit, data=sw2)
se1[2]<-summary(m1a)$coefficients["periodpost-memo","Std. Error"]

##local linear
m2<-lm(weapon.hit~period+distance+period*distance , data=sw2)
se1[3]<-summary(m2)$coefficients["periodpost-memo","Std. Error"]


m2a<-lm(weapon.hit~period+distance+period*distance+factor(year)+factor(month)+factor(weekday)+lag.hit, data=sw2)
se1[4]<-summary(m2a)$coefficients["periodpost-memo","Std. Error"]

##second order poly
m3<-lm(weapon.hit~period+distance+period*distance + I(distance^2)+period*I(distance^2), data=sw2)
se1[5]<-summary(m3)$coefficients["periodpost-memo","Std. Error"]

m3a<-lm(weapon.hit~period+distance+period*distance + I(distance^2)+period*I(distance^2)+factor(year)+factor(month)+factor(weekday)+lag.hit, data=sw2)
se1[6]<-summary(m3a)$coefficients["periodpost-memo","Std. Error"]


##cubic
m4<-lm(weapon.hit~period+distance+period*distance + I(distance^2)+period*I(distance^2) +  I(distance^3)+period*I(distance^3), data=sw2)
se1[7]<-summary(m4)$coefficients["periodpost-memo","Std. Error"]

m4a<-lm(weapon.hit~period+distance+period*distance + I(distance^2)+period*I(distance^2) +  I(distance^3)+period*I(distance^3)+factor(year)+factor(month)+factor(weekday)+lag.hit, data=sw2)
se1[8]<-summary(m4a)$coefficients["periodpost-memo","Std. Error"]


models2<-list(m1, m1a, m2, m2a, m3, m3a, m4, m4a)

print("models done")

save(se1,file= "output/se1_uniform.Rdata")##save conventional SEs
save(models2,file= "output/std_models_uniform.Rdata")##save conventional SEs

vars<-list(NA)
vc<-list(NA)

##estimate HAC SEs

print("computing HAC SEs")

for(i in 1:length(models2)){
vci<-vcovHAC(models2[[i]])
vc[[i]]<-vci
save(vc, file="output/uniform_HAC_vc.Rdata")
print(i)
}
